package com.cfwx.designpatterns.proxy.staticproxy;


/**
 * 这是一个代理类（增强CountImpl实现类）
 * 代理模式是常用的java设计模式，他的特征是代理类与委托类有同样的接口，
 * 代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类，以及
 * 事后处理消息等。代理类与委托类之间通常会存在关联关系，一个代理类的对
 * 象与一个委托类的对象关联，代理类的对象本身并不真正实现服务，而是通过
 * 调用委托类的对象的相关方法，来提供特定的服务。 
 * @author wangsy
 * 
 */
public class CountProxy implements Count {
	private CountImpl countImpl;

	/**
	 * 覆盖默认构造器
	 * 
	 * @param countImpl
	 */
	public CountProxy(CountImpl countImpl) {
		this.countImpl = countImpl;
	}

	@Override
	public void queryCount() {
		System.out.println("事务处理之前");
		// 调用委托类的方法;
		countImpl.queryCount();
		System.out.println("事务处理之后");
	}

	@Override
	public void updateCount() {
		System.out.println("事务处理之前");
		// 调用委托类的方法;
		countImpl.updateCount();
		System.out.println("事务处理之后");

	}

}
